A business may employ a database called, “a data warehouse,” for purposes of reporting and analyzing its business facts. The business may update the data in the data warehouse using extract, transform and load (ETL) processes. The extraction process is directed to retrieving facts for the business from various data sources, such as relational databases, non-relational databases, files, Internet sources, and so forth. Because the data sources employ different formats, the extraction process typically converts the extracted data into a uniform format for the transformation process. The transformation process applies various rules for purposes of generating the data to be loaded into the data warehouse in the load process. For example, the transformation process may include applying rules to particular columns, joining data, aggregating data, and so forth. The load process typically involves updating one or more fact tables of the data warehouse using the data generated by the transformation process.
A given table in a database may contain one or more keys, which identify corresponding sets of data of the table. For example, a given key may be a column name for a table. Keys may be natural keys or surrogate keys. A natural key typically contains language whose natural meaning describes the corresponding data. In contrast to the natural key, the nature of the data identified by a surrogate key cannot be readily identified by the surrogate key's natural meaning.